#pragma once
#include "mkvparser.hpp"
#include "graphutil.hpp"

namespace MkvSplit
{

class MkvReader : public MkvParser::IMkvFile
{
    MkvReader(const MkvReader&);
    MkvReader& operator=(const MkvReader&);
    
public:
    MkvReader();
    virtual ~MkvReader();
    
    void SetSource(IAsyncReader*);
    bool IsOpen() const;
    
    HRESULT MkvRead( 
        LONGLONG,
        LONG,
        BYTE*);
    
    HRESULT MkvLength( 
        LONGLONG*,
        LONGLONG*);
    
private:
    GraphUtil::IAsyncReaderPtr m_pSource;

};


}  //end namespace MkvSplit
